Method and apparatus for entertainment and information services delivered via mobile telecommunication devices

ABSTRACT

A method and system for entertainment and information services delivered via mobile telecommunication devices include a communication network, and a station communicatively linked to the communication network. The station includes an output and an interface. Also included is a head-end having at least one database configured to store programs including an audio content. The head-end receives a request from the station for a desired one of the programs, verifies the request, transmits a first portion of the desired program to the station, and records an association between the identification and the desired program. The head-end further suspends transmission of a second portion of the program based upon detection of an indication to suspend transmission. The head-end further transmits the second portion of the program based upon detection of an indication to resume transmission and stored bookmark data indicating the starting location in the program of the second portion.

CROSS REFERENCE TO RELATED APPLICATION(S)

This application is a divisional of U.S. patent application Ser. No.10/683,561 filed Oct. 9, 2003 and claims the benefit of Provisional U.S.Patent Application No. 60/417,734, filed Oct. 10, 2002.

BACKGROUND OF THE INVENTION

Audiences of television and radio have demonstrated a demand for greaterdiversity of programming and greater control over when that programmingis available. For over half a century, radio and television stationshave provided widespread, nearly non-stop broadcasts of entertainmentand informational programming. With the advent of the consumer gradeVCR, a tremendous number of shows have been taped by consumers forviewing at a later, more convenient time.

At the same time VCRs were becoming popular, a fledgling cabletelevision industry increased the number of program channels available.From about half a dozen broadcast stations in most television markets,cable television provided anywhere from double to ten times as manychoices, almost overnight. As a subscription service, cable televisionwas able to provide recent movies far sooner than advertiser-supportedbroadcasts. Audiences became accustomed to watching nearly currentmovies on television.

Households began accumulating personal libraries of favorite shows. Vastlibraries of programming were sold into the consumer market. Acommercially oriented analog to public libraries abounded, in the formof video rental stores. Nearly any movie made could be found and viewedon one's VCR (and now, DVD player), and most contemporary televisionseries' episodes could be borrowed from someone who had taped them.

Cable, and more recently, satellite television, have provided a largenumber of potential channels. Competitive pressures have resulted inhigher quality general-interest programming, and have induced manycompanies to carve out their market niche by delivering special interestprograms.

Even with all this diversity of available programming, the audience,seemingly insatiable when it comes to variety and convenience, remainsunsatisfied.

Video On Demand

Field tests of video-on-demand (VOD) services have abounded, with theultimate goal of providing every possible program, whenever desired.Video servers, located at cable and Internet head-end offices store thevideo library of offerings. Subscribers, frequently through a set-topbox, navigate a directory of the offerings and direct the remote serversto play a selection.

Though not a VOD product, a related system is taught in U.S. Pat. No.5,572,442, by Schulhof et al. in the form of a distribution system foraudio program materials, nearly audio-on-demand. Schulhof provides aplayer having a removable storage module. The player would be, forinstance, installed in a car. The storage module can be removed from thecar, and taken to a docking station having a connection to a network.Through the docking station's connection, audio programming isdownloaded from a remote source and stored on the memory module. Whenthe module is restored to the player, the downloaded materials areavailable for playing.

In U.S. Pat. No. 5,930,493, Ottesen et al. have provided a multimediaserver suitable for video-on-demand services. The multimedia data arestored in standard compression formats, and the server is able tosupport a number of concurrent, individually requested show segments.

A system for video-on-demand by Hiroaki Ueda, in U.S. Pat. No.5,815,194, ensures before sending a video program that the receivingterminal has adequate storage.

Billock et al., in U.S. Pat. No. 6,314,575, teach a full featuredvideo-on-demand system that recognizes and differentiates betweensubscribers and non-subscribers to a service. Everyone is able to viewpreview clips of shows available on the servers. However, onlysubscribers have access to the actual shows themselves. Further, when anon-subscriber attempts to access a show, the system solicits therequestor to subscribe to the system. This system is particularlyadapted to data networks.

The field of video-on-demand systems is quite full, and there arenumerous other examples which teach the implementation of multimediaservers.

Personal Video Recorders

A successful stop-gap to the challenges of providing each household withaccess to the almost limitless library of global television productionpast and present, has been the personal video recorder (PVR).

A PVR, such as those manufactured by TiVo, Inc. of Alviso, Calif.,automates the capture of shows for later playback and has become thepreferred method of viewing in many households. The PVR has access to amachine readable television guide, and can search for shows by topic,cast, crew, genre. Identifying viewers' favorites to the PVR, combinedwith the availability of hundreds of cable or satellite channels and theability to capture programming around the clock, allows each householdto accumulate a personalized, current, and instantly available viewinglibrary, albeit limited to the amount of local storage provided. Thecontent of this personal library is somewhat random, since it can onlycontain programming that has been aired recently, while not in conflictwith another desirable program, and only when storage was available.

Nonetheless, audiences have made themselves clear with their consumerelectronics purchases: The shows they want, when they want them.

Cellular Telephones

Another communication technology having achieved widespread availabilityover half a century ago, is the telephone, which, in the embodiment ofthe mobile wireless cellular telephone, has sold over half a billionhandsets worldwide.

The infrastructure necessary to support cellular telephone handsets issignificant and expensive. Even so, the cellular infrastructureinitially deployed as an analog technology, has been replaced by adigital one to provide higher voice quality and more reliable operation.In addition, digital services have been added, such as wirelessmessaging and a degree of Internet access.

Most recently, cellular telephones have entered the next generation ofdevelopment. Though the investment in these third generation (or 3G)mobile broadband capable systems is in the hundreds of billions ofdollars, all is not rosy. Betrand Bidaud of Gartner, an informationtechnology research organization, attributes the severity of thedownturn in the telecommunication industry to three simultaneousproblems: “One is the economic downturn in the US and the world. Second,is the fact that the forces driving the industry such as internet andcellular services are starting to reach a plateau in most developedmarkets, meaning that the growth is much slower . . . And third, what ismissing is a new innovation that would generate new growth.”

It was expected that non-voice services, such as image exchange andelectronic games, newly enabled by high-speed digital communication,would drive adoption of the new iteration. However, that presumed latentdemand is yet to materialize. The cellular telephone enhanced servicesinfrastructure is still waiting for its “killer app,” the applicationwhich will make 3G cellular phones a must-have product.

There exists an opportunity between the audience's insatiable desire forpersonalized and readily available information and entertainment, andindustry's pending ability to provide ubiquitous cellular access tobroadband digital services.

Dedicated Channels vs. Packet Networks

There is a difference in the way that telephones and networked computersoperate. The telephone converts the voice of a caller into a stream ofelectrical impulses. These impulses, which are transmitted immediatelyto the other telephone conversation participant, or in the case of aconference call, participants. Early telephones used analog electricaltechniques, but modern telephone systems digitize the signal, typicallyat the local exchange. A digitized telephone signal is reconverted toanalog at the receiving exchange.

Until relatively recently, a telephone signal was assigned to a physicalchannel (e.g. specific cables, microwave links, etc.) at the time a callwas placed. The assigned channel provided the connection between thestations of the telephone call. To make better use of channelcomponents, multiple telephone signals are multiplexed to allow a cableor microwave link to carry many telephone signals simultaneously.Switching equipment at the originating and terminal exchanges, and oftenother intermediate locations, select and assign the channel for thecall. The bandwidth is dedicated and remains in use throughout theduration of that call.

Packet switched networks, such as the Internet, use a differentswitching technique. Pieces of data are routed from point-to-point fromthe originating station to a remote terminal, much as is the signal of atelephone call. However, data are divided into small packets, eachprovided with information about the destination and independentlyrouted. There is no requirement that the same cable, microwave link, oroptical fiber carry every packet. As each packet arrives at each switch,the packet may be instantly routed to the next point, but since the datadoes not have any bandwidth specifically allocated to it, immediaterouting is not assured. If traffic at that switch is too great, thepacket may be momentarily stored, until there is sufficient bandwidthbecomes available. Alternately, a packet may be routed to a differentswitch, if the system deems that an alternate route may be available.

Ultimately, on the Internet, some packets may not get delivered. Thedelivery processes require only a “best effort” level of service, notabsolute reliability. If required, messages can be exchanged between thesource and destination terminals to confirm receipt, or if necessary,request retransmission of missing packets. Protocols have beendeveloped, such as TCP/IP, to provide just such a reliability mechanism.

Streaming Media

Historically, data was passed over networks as files. A performance,such as a song, would be stored in digitized form as a file on acomputer. That file could be sent via a switched network to a secondcomputer. Once it was received, in total, it could be played by softwareresident on the second computer. File transfer techniques are wellunderstood. Protocol standards such as the File Transfer Protocol (FTP)permit files to be moved among computers even in the presence of anunreliable network. The files are broken up into a sequence of packets,and any packet that gets lost will be identified and resent until everypacket has been received accurately and the file is reconstructed.

Such techniques, however, are limited to completed performances. Anongoing performance, for instance a radio show, or a telephone call,require a different approach: The second computer is going to startplaying the performance before an end is received. This approach treatsmedia as a continuous stream. It is perfectly reasonable to startplaying at any point in the stream, and continue playing indefinitely.

Streaming media technologies have been widely taught. Glaser, et al., inU.S. Pat. Nos. 5,793,980 and its continuation 6,151,634, describe anaudio-on-demand mechanism for the delivery of audio and accompanyingmultimedia data via a dial-up or other network connection. Suchmechanisms are embodied in the streaming media servers and players byRealNetworks, of Seattle, Wash. Apple Computer, of Cuppertino, Calif.with its QuickTime products, also provides usable streaming mediatechnologies, such as those taught by Batson et al., in U.S. Pat. No.6,098,126, and Jones et al., in U.S. Pat. No. 6,134,243.

Interactive Voice Response

Pre-recorded telephone messages were initially used to announce anautomatic answering machine. Information services, such as time-of-day,provided pre-recorded message elements that were composed by anautomatic process.

With the introduction of touch-tone telephones (DTMF technology),systems followed that accepted in-band signaling (the touch-tones)allowing telephone customers to transmit commands or responses thatcould be understood by a remote machine.

Initially, Interactive Voice Response (IVR) systems make use of commandsand responses that customers provide using touch-tone keys to provide aselection of pre-recorded information messages. IVR system enhancementsinclude synthesized voice and voice recognition. Synthesized voiceallows on-the-fly generated data, such as an account balance or computergenerated weather report, to be announced; and voice recognition,whereby a caller can speak a command or response, can replace touch-tonecommands.

Advanced Conference Calling System

Co-pending U.S. patent application Ser. No. 10/238401, filed on Sep. 10,2002 by Weisman et al. and entitled Method and Apparatus for ImprovedConference Call Management, is herein incorporated in its entirety bythis reference. Weisman teaches a way of managing conference calls thatallows individuals to spontaneously initiate or join existing conferencecalls based on subject and/or proximity, and yet collectively retainsufficient control so as to keep the social environment manageable.

1. Field of the Invention

The present invention relates generally to a way to provideentertainment and information services over a communication channel.More specifically, it provides a way to deliver selected programmaterials to a user having a communication device, such as a telephoneor computer. More specifically still, it provides a way to deliverselected audio program materials to a modern mobile telephone.

2. Description of the Related Art

As the next generation of digital telephones are deployed, the non-voiceservices are the primary driver for an owner to replace a present,working cellular telephone.

In spite of the amazing array of technology platforms for communicatinginformation over networks such as the telephone system and the Internet,and for providing information and entertainment, such as interactivevoice response systems, video-on-demand services, and personal videorecorders, there remains an unmet need for immediate, portable access toan open-ended library of entertainment and informational programmingthat is both extensive and personalized.

Additionally, access to entertainment and information needs to respondto continuing changes in availability and interest. By the nature oftoday's society, individuals are subjected to frequent interruptions—“Mytime is not my own,” goes the common lament. For this reason, it isdifficult to find an uninterrupted interval during which entertainmentor information may be enjoyed or obtained.

Consider a morning commuter: Upon boarding the morning train, he mightundertake to be informed of the day's top news. Suppose he isinterrupted by a telephone call. Later in the trip, he is interruptedagain by the activity of transferring to another train. Multiple timeshe needs to stop his news program for resumption later. A newspaper cansometimes do this well, a radio does not.

Suppose that our commuter is in-bound on the highway and is fightingtraffic. As he approaches each major interchange, he might wish to get aquick traffic update to determine whether he should seek an alternateroute. In a few radio markets, certain news stations provide trafficreports every ten minutes. Sometimes more frequently. But these periodictraffic reports are non-optimal for someone who needs to know thecurrent traffic situation in the next minute in order to make aninformed decision about an impending turn-off for an alternate route,and they are also quite annoying to a listener not concerned with acommute.

Adding to our hypothetical commuter's plight the spectre of constantlychanging priorities, and it is quickly seen that what information oneneeds, or what entertainment one seeks, might change many times throughthe day: Suppose our commuter began his rail journey by enjoying a bitof entertainment instead of the news, perhaps an audio book. Theinterrupting telephone call informs him of a news item of concern. Theaudio book is abandoned, and he turns to find an appropriate newssource. Not only is there a need for keeping one's place, but thatshould the case with multiple programs simultaneously.

It is commonly the case that one recognizes that a particular newssegment or joke or even an advertisement would be of interest to aparticular friend. Thus comes a need for a way to capture a portion of astream, or at least a reference to it, so that it might be shared withsomeone else at a future time.

A related observation is that, in the good old days, when the number ofbroadcast networks were few, a given evening's televised offerings mightinclude just two or three significantly popular shows. The likelihoodthat a friend, colleague, or playmate had seen a particular show, or atleast heard about it, was relatively high. As such, the commonexperience of having been members of the tele-audience provided a basisfor social interaction: “What did you think of the show? What would youhave done in her situation? Would you have ever expected him to dothat?” or in the case of sports events, “What is up with that team?”

In today's world of hundreds of simultaneous offerings, the chances thata particular colleague was a part of the audience for the sameprogramming you were is greatly reduced. This has engendered a need fora way to find individuals having shared similar experiences, oranticipating the same shows that you anticipate. The way might operatein a manner analogous to a book club, where members select a novel whicheach reads and the group subsequently gathers to discuss. Instead ofselecting only books for discussion, sporting events, radio dramas, newsstories, could be the basis for an ad hoc group. In fact, acommon-interest group might gather before, during, or after such a show.

There is also a need for a way to measure access to such services, toallow for billing. Alternatively, measured access would allowsponsorship of an audience by an advertiser. Another alternative, a wayis needed to limit access to a subscribing audience. Any or all of theseneeds, if satisfied, would permit this invention be applied in asuccessful business endeavor.

BRIEF SUMMARY OF THE INVENTION

Embodiments of a method and system for entertainment and informationservices delivered via mobile telecommunication devices include acommunication network, a station communicatively linked to thecommunication network, the station having an output and an interface.Also included is a head-end having at least one database configured tostore programs including an audio content. The head-end is configured toreceive a request from the station via the communication network for adesired one of the programs. The head-end is further configured toverify the request by determining an identification, transmitting afirst portion of the desired program to the station via thecommunication network based upon the request verification, and recordingan association between the identification and the desired program. Thehead-end is further configured to suspend transmission of a secondportion of the program based upon detection of an indication to suspendtransmission. The head-end is further configured to transmit the secondportion of the program based upon detection of an indication to resumetransmission and based upon stored bookmark data indicating startinglocation in the program of the second portion.

In some embodiments, the head-end is configured to generated and storethe stored bookmark data upon detection of the indication to suspendtransmission. In other embodiments the station is configured to generateand store the stored bookmark data. The head-end can be configured todetermine the indication to suspend by the station ceasing communicationon the communication network due to one of the following conditions: thestation is a telephone and the user hangs up, the station is a cellulartelephone and the cellular signals has been lost, the station is acomputer and the computer has stopped transmitting an active keep alivenetwork signal on to the communication network, the keep alive networksignal being one of the following: a heartbeat and a periodic stream ofacknowledgements. In some embodiments, the station is a cellulartelephone and the communication network is a cellular communicationnetwork.

The interface of the station can include a save control, the stationbeing configured to generate the bookmark data based upon activation ofthe save control. The interface of the station can include a bookmarkcontrol, the station being configured to generate the bookmark databased upon activation of the bookmark control. The interface of thestation can include a save control, the head-end being configured togenerate the bookmark data based upon activation of the save control.

The interface of the station can include a bookmark control, thehead-end being configured to generate the bookmark data based uponactivation of the bookmark control. The head-end can be configured tostore the bookmark data. The station can be a non-cellular telephone.The station can be a computer.

The station can be a telephone and a computer. The communication networkcan be at least one of the following: a telephone network and a computernetwork. The station can be configured to store the bookmark data.

The system can include a plurality of stations other than the station,the plurality of stations including at least one of the following: acellular telephone, a computer workstation, and a non-cellulartelephone. The request verification by the head-end can be based upon atleast one of the following: a subscription plan, a content rating of thedesired program, and payment history associated with a user of thetelephone. The station interface can include an in-progress userinterface with a join button configured to, upon activation, join afirst user activating the join button to a conference with other usersof a program being received from the head-end. The station interface caninclude an in-progress user interface with a mark button configured to,upon activation, bookmark a segment of a program being received from thehead-end for subsequent retrieval. The station interface can include anin-progress user interface with a send button configured to, uponactivation, send either a program or a link of the program beingreceived from the head-end to another user.

The station interface can include an in-progress user interface with asave button configured to, upon activation, save a program beingreceived from the head-end for future play. The station interface caninclude an in-progress user interface with a pause button configured to,upon activation, halt playing of a program stored on the head-end. Thestation interface can include a select show dialog based upon voicerecognition. The station interface can include a selection menu with atleast one of the following: a select button configured to select aprogram stored on the head-end and a clear button configured to clear aprogram selection previously made. The station interface can include aselection menu with a selection prompt associated with selection of aconference call associated with the desired program.

The at least one database of the head-end can include a holdingsdatabase configured to store information regarding at least currentusers of the head-end, the information including data about programsstored in the at least one database being used by the users. Theidentification determined by the head-end can be based upon at least oneof the following: a caller-identification code and an internet protocoladdress. The head-end can include cache servers located in differentgeographical areas. The head-end can further include an access managerand a media server, the access manager being configured to accept andprocess commands and queries from the station via a receive buffer andis configured to transmit status and programs back to the station via atransmit buffer, the access manager configured to control the mediaserver to serve programs stored on the at least one database.

The station can be a cellular telephone configured to receive audio anddata over separate communication channels and the communication networkincludes separate voice and data communication channels. The output canbe a display and a speaker. The station can further include a buffer tostore received portions of the desired program before being played bythe output.

The station can be a computer and a telephone, the computer configuredto receive at least text data from the head-end via the communicationnetwork, the head-end further configured to transmit at least text datato the computer and audio data to the telephone via the communicationnetwork. The communication network can include a telephone network andthe Internet. The communication network can include at least one of thefollowing: a telephone network, a local area network, a wide areanetwork, and the Internet.

The interface of the station can be configured to provide a sendselection capability that when activated by a user of the station sendsa request to the head-end via the communication network to sendinformation associated with the desired program to another user.

The interface of the station can be configured to bookmark a portion ofthe desired program such that when the bookmark is activated thehead-end commences transmission of the desired program from the portionbeginning.

The station interface can be configured to facilitate selection of thedesired program from the programs in the at least one database of thehead-end. The interface can be configured to be presented on the output.The interface can be configured to be presented on other than theoutput.

The at least one database of the head-end can store informationincluding at least one of the following: representations of subjectmatter of the programs, availability of the programs, identification ofusers currently using each of the programs, preferences and listeningstatus of each of the current users and the head-end is configured totransmit the information to station upon request of the head-end by thestation. The association between the identification and the desiredprogram recorded by the head-end can be further configured for billingof a user of the station that used the interface to generate the requestfor the program. The identification determined by the head-end can beconfigured to identify one of the following: the station and a user ofthe station.

These and other features and advantages of the invention will be morereadily apparent upon reading the following description of a preferredexemplified embodiment of the invention and upon reference to theaccompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

The aspects of the present invention will be apparent upon considerationof the following detailed description taken in conjunction with theaccompanying drawings, in which like referenced characters refer to likeparts throughout, and in which:

FIG. 1 is a detailed block diagram of an implementation of thecommunication system showing multiple participant stations configured tooperate over a communication channel, and including a head-end having anaccess manager and media server;

FIG. 2 shows a cellular phone implementing an implementation of a userinterface for a participant's selection of a show;

FIG. 3 depicts an implementation of a user interface supplied to aparticipant while a show playback is in progress;

FIG. 4 is a representation of data and relationships tracked by thehead-end; and,

FIG. 5 is a schematic of a buffering technique used by an implementationof the communication system.

DETAILED DESCRIPTION OF THE INVENTION

A communication system and method is described herein to provideentertainment and information services over a communication channel. Theentertainment and information services may be music, current radiobroadcasts, news programs, audio books, old-time radio dramas, or audiochoose-your-own-adventure games. The services are primarily audio, butmay include visual enhancements such as still images or even videoclips. The communication channel may be a telephone network, or a datanetwork such as the Internet.

More specifically, the communication system provides a way to deliverselected program materials to a user having a communication device, suchas a telephone or computer. More specifically still, in someimplementations the communication system provides a way to deliverselected program materials, primarily comprised of audio, to a mobiletelephone.

Each participant has a station, consisting of at least a telephone andcontrols to provide the participant with input, and preferably aprocessor and a display written by the processor. The telephone andprocessor are in communication with a head-end that provides the accessto media services described below. This communication occurs over one ormore channels such as a hardwired telephone line, a wireless connection,network, or Internet. A voice-over-data service may be employed.

Though a traditional telephone keypad can suffice, it is preferable thatthe controls include an additional input device for convenient entry ofselections and preferences. The telephone keypad, a keyboard, a mouse, ajoypad and buttons, a pen interface, or voice command system are some ofthe many viable input devices. Each has strengths and weaknesses.

The display is used by the processor to show current preferences andselections made by the participant, to indicate show available, and toindicate the status of the show in progress.

Using the controls, the participant can request and control the playbackof a show of the participant's choosing.

The head-end provides a clearinghouse of show and participant data. Showdata may include representations of the show's subject matter,availability, current participant list, and each participant'spreferences and listening status.

The head-end is also responsible for providing, for each show, the mediaservices required to deliver the show to the participant's station.

A buffering scheme is preferably employed to ensure that interruptionsof the communication channel have a minimum impact on the performance ofa participant's station and the delivery of shows.

The processor of a participant station, through the controls anddisplay, preferably provides a user interface (UI). Initially, the UI isused to select shows or establish preferences. Alternatively, aninteractive voice response system can be used to provide the UI.

Once a show is selected, the UI provides a means for a participant tocontrol the playback of the show. For example, the UI can indicate theidentity of the current show or its cast. The UI may provide dataconcerning the status of the playback, such as a display of the timeremaining.

The UI preferably provides a way for the participant to bookmark apassage or event in the show for later recall or for transferring toanother participant. Such a feature is a built-in mechanism to promoteand facilitate word-of-mouth advertising, which is, of course, the bestkind.

Implementations of the communication system assist to make shows havingan episodic, serial, or chapterwise organization more easily navigable.

Another aspect of the communication system aids in promoting socialinteraction by assisting participants enjoying a show to find otherparticipants having common tastes and to initiate an ad hoc conferencecall.

A further aspect of the communication system measures a participant'suse of media services and to regulate that use according to a selectedbilling scheme.

A related aspect permits advertisers to subsidize some or all of aparticipant's use of media services in a manner that can be particularlytargeted on any of demographic and location based parameters.

Another related aspect provides participants with management of theirown privacy by maintaining for each participant an alias having at leastone generally available public part and a selectably revealed privatepart. A further aspect provides more than one public part, which isselected manually or automatically according to context.

A related aspect of this invention provides a mechanism by which aparticipant's voice may be disguised, and to allow a participant to dropthe disguise for selected other participants.

Another aspect makes it easy to invite others to become participants toa show.

Referring to FIG. 1, a communication system 2 includes a plurality ofindependent and separately operated participant stations represented bystations 10 and 12, which are connected by a communication channel 150to a head-end 18.

Note that while the term “participant” is used throughout, what is meantis simply the user of the communication system 2, though most typicallyit may be that the user is a human, it is also possible that one or moreparticipants could be a computer program (not shown), designed to perusenews services or test for compliance with advertising agreements.

In some implementations a single one of the head-end 18 is used whereasin other implementations multiple head-ends are used. Each of thestations 10, 12 communicates over a communication channel 150 directlywith the head-end 18. The head-end 18 is responsible for responding toall pertinent selections made by the participant, which the stations 10,12 are not able to handle.

The communication channel 150 may be a telephone network, a local orwide area Ethernet, the Internet, or any other communication medium, orcombination thereof that can carry at least audio. In someimplementations the communication channel 150 carries other data aswell. For example, if the communication channel 150 is the Internet,data could be carried using UDP or TCP datagrams, and audio could becarried over a voice over IP (VoIP) protocol, or by other methods ofstreaming media. Other protocols familiar or developed by to thoseskilled in the art can be substituted. If the communication channel 150is strictly an audio channel, then selections made using the stations10, 12 can be communicated to head-end 18 using DTMF or other well-knownin-band signaling techniques (some of which are discussed below).

Alternatively, separate audio and data channels comprise thecommunication channel 150. For example, voice can be carried over aswitched telephone network, and data can be carried over a broadbandnetwork connection.

Many solutions to this data-plus-audio communication channel requirementare known, including, for example, modems compliant with theInternational Telecommunication Union V.70 specification, which cansimultaneously carry both data and digitally encoded voice signals overa single dial-up phone line. Wireless solutions to the simultaneousvoice and data problem are taught by Hillman et al., in U.S. Pat. No.6,140,956, which provides for data to simultaneously and unobtrusivelybe sent over a wireless channel normally used for voice communicationonly. Software APIs, such as the DirectPlay and DirectVoice elements ofDirectX 8.1 by Microsoft Corporation of Redmond, Wash. permit channelsnormally configured for data only to incorporate simultaneous digitizedvoice transmissions.

The plurality of the stations 10, 12 can be implemented as cellulartelephones. For example, the station 10 as a cellular telephone wouldhave a voice input 170 as a microphone, which is prepared andconditioned for transmission by a transmit buffer 130, and sent via acommunication channel interface 140, to the communication channel 150,in this case the cellular network. Signals intended for the station 10are received across the communication channel 150 and are detected andselected by the communication channel interface 140, and provided to areceive buffer 160 of the station 10. For those signals that representaudio, the receive buffer 160 routes the signal to an audio output 180of the station 10, as a cellular telephone earpiece.

In this example of a cellular phone implementation, controls 100 of thestation 10 may be a telephone keypad, but could alternatively be ajoypad and select buttons, a touchscreen, or other efficient andergonomic input device. A display 120 of the station 10 can be graphicsenabled screen capable of resolution sufficient for an efficient andergonomic user interface. A pure text or voice controlled interface, canalso be used for the display 120. A processor 110 of the station 10displays a user interface on display 120, and accepts input from thecontrols 100. The minimum duties of the processor 110 are to interpretthe participant's inputs from the controls 100 as commands which arerelayed via a transmit buffer 130 to the head-end 18; and to present onthe display 120 the status information returned by the head-end 18 whichis received by the processor 100 via the receive buffer 160.

In some embodiments, a buffer (not shown) of extent greater than thatimplied by the receive buffer 160 is operated under the control of theprocessor 110. As further described in association with FIG. 5.

Alternatively, the stations 10, 12 may be implemented as applicationsrunning on computer workstations, for example running a Windows XPoperating system by Microsoft Corporation. In such an implementation,the workstations would be provided with the microphone input 170 and theaudio output 180. The keyboard and preferably a mouse would comprise thecontrols 100, and the workstation monitor would comprise the display120. An application running on the workstation would perform thefunction of the processor 110. The transmit buffer 130, and the receivebuffer 160 can be implemented as a DirectPlay peer with an attachedDirectVoice client. As such, interface hardware; whether a networkinterface card (NIC), broadband cable or DSL modem, or telephone modem,and the appropriate DirectX drivers would comprise the communicationchannel interface 140. The communication channel 150 can thus be a LAN,telephone service network, or the Internet.

In a variation of that alternative, the display 120 could be implementedas a browser window, such as provided by Microsoft's Internet Exploreror Netscape Communicator by Netscape Communication Corporation. Theaudio functions of the receive buffer 160 can be provided by any of anumber of streaming media plug-ins, such as RealAudio from RealNetworks,Inc., or Quicktime, by Apple Computer, Inc. of Cuppertino, Calif. Theuser interface responsive to the controls 100 and further discussed inconjunction with FIGS. 2 & 3 can be implemented by HTML web pages andenhanced with JavaScript or Java applets.

In still another implementation, the stations 10, 12 can be an ordinarytelephone used in conjunction and proximity to a computer workstationrunning an application to function as the processor 110. In such ahybrid implementation, the communication channel 150 is comprised of twoparts: the telephone network to which the ordinary telephone isconnected, and a data network to which the computer workstation isconnected. In this hybrid implementation, the voice input 170 isimplemented by a microphone of the telephone; the audio output 180 isimplemented by a telephone earpiece. The telephone and computerworkstation each have distinct transmit buffers 130, receive buffers150, communication channel interfaces 140, and, likely, separatecommunication channels 150. Note that, for purposes of illustration,only a single transmit buffer 130, communication channel interface 140,communication channel 150, and receive buffer 160 are shown. In such animplementation, the computer workstation is preferably aware of thetelephone number for the associated telephone. Alternatively, thetelephone may be dialed into a prescribed number.

A variety of implementations will become apparent to those skilled inthe art, especially when considering the simultaneous audio and datamodems, and simultaneous audio and data communication on a cellulartelephone discussed earlier. Further, it is apparent that a cellulartelephone embodying separate voice and data communication channels wouldfunction in a manner analogous to the telephone and workstationimplementation discussed above.

Further, in other implementations the stations 10, 12 can beheterogeneous, to include cellular phones, computer workstations, etc.The heterogeneous mix of different types of the stations 10, 12 ismanaged by the head-end 18, which may increase in complexity in order toaccommodate a larger variety of the communication channels 150 andpotentially differing capabilities of the heterogeneous types of theparticipant stations.

The head-end 18 connects to the communication channel 150 via acommunication channel interface 40. Signals or messages related to lowlevel control of a media stream are received through the communicationchannel interface 40 by a receive buffer 60 of the head-end 18 and aresent to a media server 70 of the head-end. Signals or messages relatedto selection, initiation, or resumption of media services are sent to anaccess manager 20 of the head-end 18. The access manager 20 controls themedia server 70, and the media server provides show or other data whichis sent to a transmit buffer 30 of the head-end 18, all as describedbelow. The access manager 20 accepts and processes commands and queriesfrom the stations 10, 12 via the receive buffer 60, and sends back dataindicating the status or results via the transmit buffer 30. Data andother signals received at the receive buffer 60 are identifiably relatedto one of the stations 10, 12 from which it originated. Similarly, dataand audio signals, sent by the access manager 20 and the media server70, to the transmit buffer 30 are directed to designated of the stations10, 12.

It will to be understood here, by those skilled in the art, that forcertain instances of show transmission from the head-end 18 to thestations 10, 12 tuned to a common show, that it may be appropriate formulticast techniques to be used. Further, while not illustrated here,the media server 70, and perhaps more of head-end 18 may be implementedusing regional cache servers or mirrors that are provided to betteroptimize bandwidth demands across links which may comprise thecommunication channel 150.

The communication channel interface 40, the transmit buffer 30, and thereceive buffer 60 of the head-end 18 can have many implementations. Forinstance, in some implementations the communication channel 150 used bythe head-end 18 includes a single channel whereas in otherimplementations the communication channel includes separate audio anddata channels. Some implementations have a set of the transmit buffer30, the communication channel interface 40, and the receive buffer 60for each channel of the communication channel 150 and/or for each of aplurality of the communication channel for heterogeneous implementationsof the stations 10, 12.

As previously mentioned, signals received at the receive buffer 60 forthe control of the media server 70 are identifiable as to theoriginating one of the stations 10, 12. In a telephone networkimplementation, such identification may be the result of the specifictelephone line providing the connection, whereas a data networkimplementation, an identifier such as the IP address of the stationwould be used. Similarly, a show's media provided by the media server 70to the transmit buffer 30 are identifiably addressed to respectivedestination stations of the stations 10, 12. A correspondingidentifiability applies for the data and signals moving to the transmitbuffer 30 and from the receive buffer 60 from the access manager 20. Asshow in FIG. 3 the UI therein presented must be able to initiate a showon other presentation of data through the access manager 20 andsubsequently control the media server 70.

In an alternative implementation, a single computer and database can beused to combine the functions of the access manager 20 and the mediaserver 70 linked to a media database 80. However, it may be noted thatthe difference in the nature of the access management and media servicestasks is often more efficiently handled by distinct devices and separatedata sources.

In the course of selecting, initiating and resuming a show or other datapresentation, the access manager 20 makes use of a participant/holdingsdatabase 50 (described in detail in conjunction with FIG. 4) to create,access, and update information about participants and shows.

Referring to FIG. 2, the cellular telephone implementation of thestation 10 is shown in detail. As previously mentioned, equivalentfunctionality can be implemented on a personal computer with eitherinternal audio functionality, or in conjunction with a separatetelephone.

FIG. 2 is based upon a cellular telephone of the well-known “flip” type,though this type of cellular telephone is not a requirement. Thecellular phone body is comprised of a display section 210 including thedisplay 120, the audio output 180, the voice input 170, and from whichprotrudes an antenna 220. A touchpad section 230 includes the controls100, and is mechanically connected to the display section 210 by a hinge240.

The display 120 contains an implementation of a show selection menu 280with a select show dialog 286 as part of an initial user interface (UI)for selecting a show.

A signal indicator 282 and a battery indicator 284 provide informationpertinent to the cellular telephone, station 10: wireless signalstrength and battery charge remaining, respectively.

In some implementations, a menu title 286 appears when the participanthas indicated that accessing a show was desired. The menu title 286marks the first level of a hierarchical show selection menu. The menutitle 286 prompts the participant to select the type of conference calldesired. In this exemplary implementation, items of the show selectionmenu 280 include a resume last pick 290; a selection of shows based upona recently selected shows pick 292; a historically indicated asfavorites pick 294; arranged in a list, a browse pick 296 preferablyboth hierarchical and categorical; and a search pick 298 accessible bystructured or freeform search. The details of selecting a show arediscussed below, in conjunction with FIG. 4.

In FIG. 2, the resume last pick 290 has been selected, as shown by thehighlighting box surrounding it. At this point, the controls 100, whenmanipulated by the participant, interact with the display 120 throughthe processor 110 to form an intuitive user interface. As shown in FIG.2, a joypad 250 is used to alter the selection. For instance,consecutive presses of the joypad 250 in the direction of the downwardone of four directional indicia 252 results in sequentially downwardselection of picks from the show selection menu 280. Consecutive pressesof joypad 250 in the direction of the upward one of directional indicia252 would result in the sequentially upward selection.

Upon the desired menu item being selected, the participant's choice isindicated by pressing a select button 254. If the participant wishes toabandon that selection, the clear button 258 can rescind that choice. Ifthe clear button 258 is pressed either before making a menu choice orafter having rescinded a menu choice, then the participant exits theentire show selection interface.

Subsequent levels (not shown, but discussed in conjunction with FIG. 5)in the show selection menu become even more specific and eventually leadto the identification of a particular show to be initiated or resumed.With a specific show or other data presentation indicated through thehierarchical menu, the participant can use the select button 254 toinitiate the show. The process of initiating or resuming a show isdescribed in more detail in conjunction with FIG. 4.

It will be readily understood by those skilled in the art, that a widevariety of mechanisms for selecting a show to initiate or resume can bedesigned. For instance, commonly selected favorites, such as the currenttraffic report, might be assigned to a single button such as functionbuttons 260, 260′. Pressing the function button 260 would allow theparticipant to initiate the assigned show.

In an alternative embodiment, the display 120 is provided through aspeech interface such that an interactive voice response (IVR) systemmay prompt the participant with the spoken phrase “What Show?” Theparticipant could respond “Recent,” and a voice recognition functionwould make the menu selection. Note that the voice recognition functionmay be performed either in the processor 110 or by a remote speechinterpretation system (not shown). Such IVR techniques are well known inthe art and many implementations are readily available, both on localand remote processors. The nature of the display 120, whether graphic oraudio, and the locus of computation to determine the participant'sselection, whether local or remote, does not alter the fundamentaloperation of the present invention.

The cell phone may support a remote earpiece 174, or a headset havingstereo capability (not shown) to better perform the function of theaudio output 180. The remote earpiece 174 or the headset may be wirelessor connected via a cord 172.

FIG. 3 shows the show in-progress user interface 300 on the display 120,as it would appear in the cellular telephone implementation of thestation 10.

Current show data 310 preferably includes a title or other name 312,which may be a song artist, book author, speaker, chapter name, etc. Inaddition, an image 314 may be provided to augment the show. The image314 may be a picture of the artist performing the show, an occasionalillustration of the show's action (e.g. the wood cut illustration ofCapt. Billy Bones keeping to himself at the inn in the first chapter ofRobert Louis Stevenson's Treasure Island), or a more frequently changingillustration, as accompanies the dialog in a comic book.

While the image 314 could be full-motion video (or nearly so), thebandwidth requirements and the utility of the visual component on asmall, portable screen (especially outdoors) is limited for manypotential shows.

It is also possible that the image 314 is a computer graphic renderingof a 2D or 3D scene. Such a rendering would be produced locally on thestation 10, but from scene and camera data provided by the media server70 and presented in appropriate synchronization with the show.

Informational displays such as the one headed by a time left label 316and expressed in a time left display 318 are described in reference toFIG. 4, below.

Show controls 320 minimally provide the ability to start and stop thepresentation of the current show. A pause button 324 when activatedusing the controls 100 (perhaps via the joypad 250) would halt playbackof the current show. The pause button 324 would be replaced by a playbutton (not shown), the activation of which would resume the show fromits paused position. Preferably, controls for other familiar featuressuch as a fast-forward button 326 and a rewind button 322 are madeavailable. Further, controls to skip forward or back by temporal orcontextual quanta (e.g. 30 seconds or to the beginning of the chapter,respectively) can be provided also.

An alternative to the show controls 320 being presented on the display120 would be to have them available on a numeric keypad 270 as shown inFIG. 2. For instance, by publicized convention fast-forward might becommanded by a #3 button 272 of the numeric keypad 270. Such controlsare commonplace and well known in voice mail systems.

Other controls such as ending playback of the current show can be calledfor by elements of the UI (for instance, a menu item on an actions menu330 as shown in FIG. 3), or by employing discrete buttons on the controlsection 230 such as clear 258 or hang-up 256′ as shown in FIG. 2.

In some implementations, the actions menu 330 is presented forparticipant actions. Contents of the menu 330 will vary, depending uponthe status and nature of the current show selected by the station 10.The menu items may change whether the current show is paused or not, orwhether certain options are presented (e.g. selecting whether the image314 is small or dominates the display 120), or whether the show itselfis dependent on participant input (e.g. a choose-your-own-adventurestyle game).

As shown in FIG. 3, a next button 334 is the currently selected menuitem as noted by a highlight box. The availability of unselected itemstoo numerous to be shown on the display 120 is indicated by horizontalscroll indicia 335 and 335′. The currently selected menu item can beselected by pressing the select button 254. Alternatively, the leftmostmenu item (currently shown as a previous button 332) and the rightmostmenu item (currently shown as the next button 334) can be selected bythe function buttons 260, 260′ respectively (absent the shortcutassignments previously discussed), whether or not the associated menuitem is highlighted. The leftmost and rightmost menu items and those notshown on screen can be viewed and highlighted by pressing the joypad 250left or right.

The following discussion involves items that are preferably listed inthe actions menu 330, and their corresponding function:

A save button (not shown) is the action taken by a participant to endplayback of the show, for now. The participant will be able to return tothe saved show sometime in the future. This differs from the pausebutton 324, in that the show in-progress interface 300 is closed by thesave button, whereas the pause button 324 merely stops the playback butis immediately ready to resume.

When the show in-progress interface 300 is closed, the participant ispreferably returned to show selection interface 280.

A drop button (not shown in the actions menu 330), a menu item similarto the save button, also discontinues playback of the current show andreturns to the show selection menu 280. However, the drop button doesnot provide the ability to resume at a future time. The drop button isused to exit and discard an unwanted show.

A send button (not shown in the actions menu 330) when selected willallow a participant to send the current show to another participant.When selected, the send action accepts from the participant the username (discussed below in conjunction with FIG. 4) of anotherparticipant. A show sent to another participant will appear in thatparticipant's show selection menu 280, under an additional recommendedbutton (not shown). Preferably, the sending participant can annotate therecommendation with a text message. Alternatively, the annotation can bemade as a voice mail message (voice mail storage not shown).

A mark button (not shown), is preferably the default menu item. Thiswill minimize delay in capturing a segment currently playing bybookmarking it. Subsequently, a bookmarked passage may be returned to(see GoTo, below) or it can be sent to another participant. A bookmarksent from another participant preferably appears in show selection menu280 under the recommended button, described above. Bookmarks created bya participant for personal use may be available within a show using agoto button, discussed below.

The goto button (not shown in the actions menu 330), will jump to alocation within a show that was bookmarked by a participant. If morethan one bookmark is present, selecting the goto button preferablybrings up a menu where annotations can be displayed and selected.

Alternatively, no menu is presented when the goto button is selected,and the first bookmark is jumped to and the show plays at that point. Ifmore than one bookmark is present in a show, consecutive presses willjump to consecutive bookmarks.

If a bookmark was sent by another participant, then selecting that showfrom the show selection menu 280 will produce the show in-progress userinterface 300, preferably with the goto button as the selected,highlighted menu item. In this manner, receiving a recommendation andfinding the pertinent passage that a friend consider would be ofinterest to you is an easy matter.

A join button (not shown), allows a participant to find and join aconference call in-progress among aficionados of the currently selectedshow. The methods and apparatus for supporting such a joining aredescribed in detail in co-pending patent application by Weisman et al.,previously mentioned.

For such a transaction to be made most easily, the access manager 20 anda conference call management element of a conference call system (notshown) are preferably able to communicate with each other and interactwith each other directly.

Alternatively, the communication system 2 can take information about thecurrently selected show, such as the show name, and provide that as aparameter to a separate conference call application, similar to Weismanet al. The information about the currently selected show passed as aparameter will be used to search for conference calls having the show asa topic.

Preferably, once a conference call is joined, the participant cancontinue to listen to the show of interest while also monitoring theconference call. A particular one of controls 100 or a user interfaceelement (not shown) would be used to switch between the conference callmanagement interface, and the interface for managing the showin-progress 300.

FIG. 4 shows implementations of the participant/holdings database 50 andthe media database 80 and identifies relationships therein. In someimplementations, there is a single logical database used by head-end 18.However, the opportunities for optimizing system performance andmaintainability will be significantly enhanced if the physicalimplementation separates most of the tabular database information fromthe large media files. In some implementations, user specific data (suchas bookmark information used for resumption of recently played material)can be stored on the stations 10, 12 if further distribution of data isdeemed appropriate for a given circumstance.

Database operations performed by the access manager 20 differsignificantly in quality and quantity from the media services operationsperformed by the media server 70. The typical request made of the mediaserver 70 and the media database 80 asks for a relatively large quantityof information (e.g., a show) to be transferred, potentially over a longperiod of time (e.g., the length of the show).

The typical request made of the access manager 20 and theparticipant/holdings database 50 is a query, typically involving theinteraction of two or more database tables. Such queries are expected tohave results available in a fraction of a second.

Those skilled in the art will recognize that the radically differentkinds of data in the participant/holdings database 50 and the mediadatabase 80, when separated allow for effective optimizations that mightbe wasted or even harmful were the databases combined. Among theparameters that might be selected for such optimization include drivesize, speed, disk access buffer size, transfer rates, cache sizes,backup strategies, mirroring strategies, etc.

Still, an alternative implementation could house all the data of thehead-end 18 in a single database, and optionally combine the function ofthe media server 70 and the access manager 20. At some scales ofimplementation and with certain technology selections, such anarrangement may be the most economical, provide a certain ease ofoperational management, or be simpler and quicker to implement.

The participant/holdings database 50 contains information aboutparticipants, their preferences and status, information about shows,including descriptive information, categorization, and availability. Themedia database 80 contains the information of the show performanceitself, including the audio data and image data, if any.

There exists a wide variety of database paradigms that can be used forvarious implementations. Some implementations use a relational databasesuch as the one shown in FIG. 4.

It is to be noted that some data indicated herein symbolically asoccupying a single column in the depicted implementation might, in otherimplementations, be multiple columns, or even be broken out intoseparate tables. In fact, such a breakout might be appropriate toconform to a desired degree of normalization. Such modification andnormalization are well within the skill of those familiar with the art.

Throughout the following discussion, table and column names arecapitalized for clarity. For each of a user table 410, a phone table420, an episode table 430, a program data table 440, a series table 450,a favorites table 460, a player table 470, a recent table 480, and asynopsis data table 490 in FIG. 4, key fields are contained in ahighlighted box at the top of the respective table. UID, PID, EID, SID,and AID are the native keys for the user table 410, the phone table 420,the episode table 430, the series table 460, and the advertisement table(not shown), respectively. All other occurrences of UID, PID, EID, SID,and AID are foreign keys in their respective tables.

Every participant currently online and engaged in a show, is representedin the user table 410. Preferably, participants are registered and theirrepresentation in the user table 410 is persistent. When they return touse the system at a later time, they make use of the records previouslyassociated with them.

A newly created participant is issued a unique participant identifier,referred to as the UID (user ID), which may be used as the key to theuser table 410. Each entry in the user table 410 includes theparticipant's user name, which is preferably unique. Depending upon theimplementation, a password may be stored to verify identity—and usingthe password to verify identity can resolve an otherwise ambiguous username.

Preferably, however, a returning participant's identity is automaticallydetermined. Each time a participant uses one of the stations 10, 12 toaccess the head-end 18, the head-end preferably receives the phonenumber (as with caller-ID ID), or other identifying information, fromthe station. For instance, in an implementation using a personalcomputer, the Ethernet address of the network interface card (NIC)comprising communication channel interface 140 may be used. Anotheralternative would be for the serial number of processor 110 to be used,if available. In a browser implementation, a cookie can be used. All ofthese methods are well known and understood within the art. In aheterogeneous implementation of the stations 10, 12, it may be the casethat different identifications are used for different stations.

For the purpose of this description, and for simplicity, but not by wayof limitation, a single automatic identification mode of a telephonenumber is assumed. The skilled practitioner will immediately see theopportunity to provide the generalized or multi-mode identificationtechniques listed above, or others.

An entry in the user table 410 also preferably includes theparticipant's true identity, that is, the participant's real name.

Whenever a participant is making use of the system, it is useful torecord which of the stations 10, 12 is being used. In this exemplaryimplementation, this is stored as the current phone PID. Were theparticipant to end a session or the connection to be otherwiseterminated, the Current Phone PID would be set to a null value toindicate that the participant is off-line.

Billing data records any information necessary to contact, charge, orreceive payment from the participant. Some details of a subscriptionplan may also be included in billing data. For instance, a subscriptionplan might be defined as providing access to 25 particular radiostations and up to three audio books per month. A different subscriptionplan might offer fifty hours of access to any show content. Anothermight allow unlimited access to old-time radio dramas.

The access type column of the user table 410 is used as a summary of theaccess permissions owing to a participant. These may be defaulted, set,or modified by changes in the participant's subscription (i.e., asubscription plan indicated in the billing data) or by marketingpolicies (e.g., a free 30-day trial)

One or more columns such as cumulative time may be provided to keeptrack of a participant's utilization of services. If a subscription planincludes fifty hours of use per month, it is important to record theactual time used each month. By extension, if a plan allows for accessto three audio novels per month, a count of audio novels begun in amonth would be kept in addition to, or instead of, cumulative time.Alternatively, cumulative time might be handled as a “time remaining”field, that counts down until it reaches zero.

Preferably, a participant's demographic data would contain informationthat would be useful as a marketing profile of the participant. Theprimary use would be for directing advertisements (discussed furtherbelow).

Finally, a column is preferably supplied to note the participant'slocation data. Rather than the address of the participant's office orresidence (which may be available from within billing data), locationdata is supplied by a cellular telephone locator service. Cellulartelephones are available which are equipped with a global positioningsystem (GPS) receiver, capable of determining the telephone's positionon the globe. Other locator services can determine with which cellularsite a telephone is communicating, and in some cases which antenna ofthe site is being conducting the communication. From these pieces ofinformation, the cellular system can approximate the cellulartelephone's position. It is the determination of such a locator servicethat would be used to populate the location data column whenever theparticipant is connected.

When a participant uses a specific cellular telephone as one of thestations 10, 12, the telephone will be associated with an entry in thephone table 420. Each unique one of the stations 10, 12 will be given aunique phone ID, or PID.

Preferably, the phone number is automatically provided by a caller IDfunction. Alternatively, an application on the telephone can initiate aquery and determine the appropriate value for the phone number.

If the cellular telephone is capable of a data connection, the addressfor that data connection is recorded in the IP address column. If the IPaddress is dynamic, then this column may be updated each time one of thestations 10, 12 makes a new contact with the head-end 18. When theconnection to the head-end 18 is dropped or lost, then this field is setto a null value. If the IP address is static, rare for a cellulartelephone but common among personal computers, then this value is notset to null.

When one of the stations 10, 12 as a telephone makes an initial contactwith head-end 18, the station must be associated with either a newparticipant, or a previously created one.

Once one of the stations 10, 12 is established with a record in thephone table 420, the owner UID column establishes an owns relationship422. By default, when a contact is made by one of the stations 10, 12 asa cellular phone identified because its phone number or IP addressmatches a record in the phone table 420, the related entry in the usertable 410 is presumed. This can be overridden if several participantsare sharing a single telephone.

When a participant connects using a particular phone, the current phonePID column in the user table 410 is set to the PID of the entry in thephone table 420 to establish an is using relationship 424.

For the purpose of this embodiment, the aggregation of all showsprovided by the head-end 18 are represented in the episode table 430. Inaddition, these shows are organized into related groups which arerepresented in the series table 450. The utility of the series table 450will be discussed below, and in conjunction with the browse pick 296 andthe search pick 298. For now, this discussion presumes that theparticipant has selected an episode from the episode table 430. Such aselection would be made from the show selection menu 280 and its relatedmenus (not shown), which will be discussed further, below.

Each show available in the participant/holdings database 50 has an entryin the episode table 430. Depending on the nature of the show, the entrymight represent a single song, an episode of a radio drama, a segment ofa continuous broadcast (e.g. a traffic report, an interview, headlinenews coverage, an in-depth news story, a period or inning of a sportingevent - or the whole event itself, etc.)

Each entry in the episode table 430 is given a unique EID. Preferably,each episode is associated with a Series (discussed below) which, againdepending on the nature of the show, might represent an actual series(e.g. the Lone Ranger radio drama), an album comprised of multiplesongs, or the broadcast stream of a radio station.

Other organizations and breakouts of show data besides that representedin the episode table 430 and the series table 450 are certainlyfeasible, and would lie within the scope of the communication systems.

In some implementations, each show in the episode table 430 has anepisode name. Where appropriate, an episode number is also provided.

As information both for the participant and for calculations of timeremaining, a column is provided for the episode's length. This allows aparticipant to anticipate that a selected episode can be enjoyed in thetime the participant allots.

A text synopsis is preferably provided to aid in the selection of theepisode, or in the case of an episode in the middle of a serial program,the synopsis may relate the summary of the action that has take place inearlier episodes.

The column air date/time is useful for several functions. First, it isused to identify segments such as the five o'clock news on a radiostation, and to differentiate between today's and yesterday's fiveo'clock news. Second, for standing libraries of shows, such as old-timeradio dramas, the air date/time can be used to indicate the original airdate of the show. Third, for shows that are scheduled but not yetavailable, for instance, the upcoming episode of a current radio drama,the air date/time may be in the future. This allows upcoming episodes tobe listed with pertinent information in the library, even though theyare not currently accessible for playback. Additionally, for certainmodes of operation for the stations 10, 12, this timing can be used toschedule program capture, discussed below in reference to FIG. 5.Fourth, this value can be set to null to indicate that the show isupcoming, but as yet has availability is uncertain or has not beenscheduled.

The column credits may be a list of performers, such as the singersand/or band or its members for a song, and/or may include copyrightinformation or other data that may be of interest to a participant.

If the episode is one of a sequence and it is appropriate to be able toeasily find the previous episode, then the previous EID column is set toreference that episode's entry. The first episode in such a series willhave a null value in the previous EID column.

Similarly, the next EID column can be set to reference the next episodeof a series. Note that in a currently unfolding serial, the next EID maypoint to a episode that is not currently available by virtue of a future(or null) air date/time.

Once an episode has been selected, assuming it is available, aparticipant can issue a command to start it playing. The control forthis command is not shown in the figures, but would be present in one ofthe deeper select show dialog screens subsequent to the show selectionmenu 280. If the episode is not yet available, this start control (notshown) would be disabled. Preferably, an explanation as to when theepisode would be available is displayed in lieu of the start control.

If the start control is present and is activated by the participant, acommand is issued by the access manager 20 to the media server 70 withthe instruction that the selected episode is to be played for theselecting participant. The selected episode is represented by itsassociated EID from the episode table 430, while the selectingparticipant is represented by the associated current phone PID from theparticipant table 420.

Upon receiving this command from the access manager 20, the media server70 creates and begins management of an instance of a media player (anentity not shown, but in some cases contained within the media server,but also potentially distributed between the media server and thestations 10, 12—see the discussion associated with FIG. 5, below).

The media server 70 records the status of this media player as an entryin the player table (not shown). The current phone PID and episode EIDare recorded and can uniquely identify the media player.

When an episode is first selected with the start control, the positioncolumn is set to zero, indicating that episode should be played from thebeginning.

The media server 70 uses the EID from the player table to access thecorrect entry in the program data table 440.

The performance data in the program data table 440 is the representationof audio or multimedia presentation of the show. This might be a .WAV,.MID, or .MP3 format audio file, or it may a .AVI or .MOV or otherformat audio and video presentation. Further, the show might be storedin another multimedia format, such as any of those supported by mediaplayers such as Apple Computer's QuickTime, Microsoft's Media Player, orRealNetwork's Real Player, Macromedia's Director, Flash, and Shockwaveformats, etc.

Preferably, the media player is able to make use of and update the valueof the position column. The value of the position column in the playertable initially directs the associated media player to a startingposition in the performance data of program data table 440.Subsequently, the media player can continuously, periodically, or on anevent driven basis update the position value in the player table.

A preferable alternative is for the position value in the player tableand usable by the associate media player to be time-based. Thus, theposition information would actually comprise a starting offset, given asa time index into the performance data, and the time at which the startcommand was issued (not shown). Thus, whenever the position in theplayer table is accessed, the current time-offset into the performancedata of the program data table 440 could be computed. This arrangementhas the advantage that the player table is only accessed when an eventhas occurred, and not on a continuous basis.

This computation, and the operation of the media player, would alsoinclude the nature of the previous command as stored in the speedcolumn. Typical values for entries in the speed column might be +1,indicating that the media player should play at normal speed, +3 mightrepresent fast-forward, −3 might indicate rewind, and zero wouldrepresent a pause. When initially created, the media player would setthe speed value to +1, and the performance data would begin playing.

The controls 320 of show in-progress user interface 300 (and the othercontrols discussed relative to FIG. 3) affect the values of position andspeed in the player table. For instance, activation of the fast-forwardbutton 326 shown in FIG. 3 would set the speed value of the associatedmedia player to +3. The position value would not be altered, but wouldreact by counting upward at 3× its normal rate.

In the case of the alternative described above, at the time thefast-forward button 326 was selected, the current value for positionwould be calculated from the media player's last calculated position,last speed, and the length of the interval since the last command wasgiven. This newly computed position would be clamped to not be less thanzero, nor more than the length as recorded in the episode table 430. Thenewly computed position would be recorded in the position column, andthe speed appropriate to the current command, e.g. +3 for fast-forward,would be recorded in the speed column for when the next computation isrequired.

Commands such as “skip forward 30 seconds” can be implemented in asimilar manner, but the value of the position is incremented by 30.

Note that while the position and timing values here are being discussedas integers for clarity, the actual values for position and speed mayhave a higher degree of resolution than integral seconds. For example,video or film based measures having an accuracy of 1/30 or 1/24 seconds,respectively, could be used.

When a change is made to Position or Speed entries in the player tableas the result of a participant command, the associated media player isnotified and takes the appropriate response.

When the end of the performance data is reached by the media player, themedia player sets the associated speed entry to zero and the positionvalue to match the length value in the associated entry in the episodetable 430. If the media play rewinds to the beginning of the performancedata, the speed column is again set to zero, as is the position value.

Situation: The media player has stopped at the end of the performancedata from the record in the program data table 440 associated with arecord in the episode table 430. A subsequent press of a play button(not shown, but a member of controls group 320) results in the episodeindicated by the next EID value to become the current record and theassociated data from the program data table 440 to begin playing.Alternatively, the participant can be offered a dialog presenting thechoice to continue or not, but that may be deemed too intrusive aninterface. True, even the pausing at the end of an episode may be toointrusive for some shows (e.g. the consecutive songs on an album or in acollection). It may be desirable for such series to have a flag in theepisode table 430 or the series table 460 to indicate the appropriatebehavior to be taken at the end of each episode (e.g. STOP, OFFER NEXTEPISODE, WAIT THREE SECONDS—THEN PROCEED, PROCEED DIRECTLY TO NEXTEPISODE, etc.)

The current value of the media player position, whether continually orperiodically updated, or obtained by calculation, may be used togenerate information displays such as a time left display 318 shown inFIG. 3. However, such information displays can be computed andincremented locally by the processor 110. The position, speed, time oflast command, and length values of the player table and the episodetable 430 can be made available to and in some cases are provided by thestation 10. Thus, it is usually within the ability of the processor 110to provide continuous updates to informational displays such as the timeleft display 318 (which would be the difference between the show'slength and the calculated current position).

In any case where a value in the player table is being computed ormodified, the authoritative source for time and position data ispreferably the media player itself. There are always latenciesassociated with message transport across the communication channel 150,and with event queuing in the station 10, the access manager 20, and themedia server 70. Only the media player authoritatively knows which datahas been accessed, sent, or played before a “pause” command or a “skipforward 30 seconds” command was carried out. The precisely position ofthe next audio or graphical sample to be rendered will only bediscernable by the media player.

If the currently playing (or stopped) episode has non-null values forthe previous EID and/or next EID columns in the episode table 430, theprevious button 332 and/or the next button 334 will be available,respectively, in the actions menu 330. The result of a participantselection of either of these menu items will be as if the appropriateepisode had been selected via the select show dialogs (not shown)subsequent to the show selection menu 280.

The EID column of the program data table 440 defines a has performancerelationship 442. Not every episode in the episode table 430 will haveassociated performance data in program data table 440. Specifically,shows which have future or null air date/time values in the episodetable 430 will usually not have no performance data associated by thehas performance relationship 442, until shortly before a scheduled airdate/time.

The media database 80 also provides a performance data column in thesynopsis data table 490. The performance data referenced by this tablerepresents a “coming soon” kind of teaser suitable for enticing aparticipant to partake of the entire episode, or may represent a recapof “the story so far,” for use with an episodic presentation.

The synopses represented in the synopsis data table 490 are used bymedia players just like the full programs of represented in the programdata table 440. (The length of the synopsis performance data would bemade available in a manner analogous to the length column in the episodetable 430, but is not shown).

The provision of the synopsis data table 490 and a has summaryrelationship 446 provides the ability for a play synopsis command to bepresented to a participant. This command is preferably presented withthe start command, previously mentioned as appearing in the deeperselect show dialog screens (not shown) subsequent to the initial showselection menu 280.

When the save button is selected, the current status of the player, asstored in or computed from the associated entry in the player table, istransferred to a record in the recent table 480.

The same transfer should occur if a media player is unable to continuewith a show. If the communication channel 150 is interrupted or eitherof the station 10 or the head-end 18 becomes disconnected, the mediaserver 70 is able to determine where the unintentional halt occurred,and initiate a save at that point. If, because of buffering describedlater in conjunction with FIG. 5, a media player resident on the station10 is able to continue playing in spite of the severed connection, andthe participant selects save action before the buffer has run out, thenthe station 10 will queue the save event with all of its parameters forexecution when the connection is re-established.

Note that an interrupted playback of performance data from the synopsisdata table 490 preferably does not generate a record in the recent table480. Further, the save button, the mark button, the send button (notshown), or the goto button menu items are preferably not available whenplaying from the synopsis data table 490. However, these features couldbe provided in an alternative implementation.

If while in the playback of an episode, a participant decides that theshow is completely unsatisfying or has no further value, the participantcan select the drop button from the actions menu 330, the playback ishalted, as with the save button, but any associated record in the recenttable 480 is deleted. In so doing, the ability to resume the episode,related series, and access to any bookmarks (discussed below) isabandoned. (Actually, experienced UI practitioners will observe thatinitially marking a record as abandoned may be preferable to actuallydeleting it outright. This is analogous to files on the desktop in AppleComputer's Macintosh OS are moved into the trash can and later deletedwhen the user is confident that he is past regretting the action. Suchan implementation might be used here, but for simplicity of explanation,is not illustrated herein.)

No less frequent than upon a save or drop command being issued by aparticipant, is it appropriate to increment the cumulative time value inthe user table 410. Other implementations are certainly possible, suchas an ongoing or periodic calculation of cumulative time. In thealternative, cumulative time might be incremented by the Length valuefrom a show's entry in the episode table 430 at the time the episode isfirst started and the record in the recent table 480 is created. Thislatter method is particularly useful under certain scenarios where asignificant amount of un-consumed media is buffered by the station 10and its consumption (i.e. how much of it has actually been played) isnot reliably determinable from the head-end 18. In this case, if theaddition of an episode's length to the participant's cumulative timewould exceed the access plan, the episode is not available to theparticipant and the appropriate explanation is displayed.

Each entry in the recent table 480 is uniquely identified by theparticipant's UID and the EID of the episode that was being played. Whentransferring a record from the player table to the recent table 480, thePID from the player table is translated to a UID, preferably through anis using relationship 424. Alternatively, and with the apparentlimitations on the freedom to lend your telephone to other users, thetranslation from PID to UID can be made through an owns relationship422.

The value of position in the recent table 480 is taken from the Positioncolumn in Player table.

If a record having the composite foreign key UID/EID already exists,then that record is overwritten. If the record does not exist, it iscreated.

The when last played column is populated with the current date and timewhen the save button was issued.

The UID of recent table 480 is used to form the recently playedrelationship 482. The EID is used to form an interrupted playrelationship 484. When a participant selects the recent menu item 292from show selection menu 280, a subsequent dialog (not shown) listingthe episodes found by the following the recently played relationship 482through the interrupted play relationship 484 (that is, by joining therecent table 480 where UID=the current participant to the episode table430 where the EID of Recent=the EID of Episode). The participant canthen scroll among the episodes so listed, which represent his list ofinterrupted shows.

The participant can then select an episode to be played from where itwas left off. In doing so, a media player is instantiated as previouslydescribed, but instead of setting the position column of player table tozero, the value is taken from the Position column of the associatedrecord in the recent table 480.

Besides resuming an episode listed by pressing the recent pick 292, andsubsequently selected, a participant can delete the associated recordfrom the recent table 480. Further, automatic processes may deleteRecent records older than some interval, for instance, 60 days.

The resume last pick 290, the default selection for show selection menu280, operates in a similar manner using the recent table 480, exceptthat the records are sorted in order of age, with the most recent (i.e.highest value for when last Played column) automatically being selectedand played.

If a participant is playing a show and finds a particularly relevant orenjoyable passage that he would like to replay later, the mark button,is used. In so doing, an entry is created in a bookmark table (notshown). The new entry receives the UID and EID column values in the samemanner as the participant's entry in the recent table 480 for the sameepisode. The position column receives the current value from (orcalculated from) the associated record in the player table. Finally, ifdesired, the participant can enter a note into the comment column.Preferably, this note is a text comment, but in an alternativeembodiment, it could be a brief voice annotation.

If a participant is playing a show and determines that a friend orassociate would enjoy or find informative the same show, he can selectthe send button (not shown). In a subsequent dialog, the participantindicates to whom he would like to recommend this show. The indicationmay be made by selecting from a list, entering a telephone number, orthe other participant's user name, or other uniquely identifyinginformation known to the system that can be translated into the UID ofthe friend's record in the user table 410.

The result is that a new record is created in the recent table 480,having the EID of the current episode and the UID of the friend.However, the value in the from UID column is set to the UID of thesending participant, forming the from relationship (not shown).

By default, the position of the recommendation in the recent table 480,is preferably initialized as zero. However, the sending participant ispreferably given the option to place a bookmark at the current positionand provide a comment, as when using the mark button. Such a bookmarkmight be kept in his own record, too. Optionally, any or all previouslyestablish bookmarks in the episode being recommended can be selected andincluded with the recommendation.

If so, any bookmarks duplicated will result in new records in thebookmark table and will bear the position and comments entered orduplicated. However, the UID will be that matching the recommendationrecord in the recent table 480, rather than the UID of the sendingparticipant as recorded in the original bookmarks.

When the friend is next at the station 10, the show selection menu 280will now contain a recommended pick (not shown). The dialog that followssubsequently will not only list the episodes as after selecting therecent pick 292, but will also display a message similar to “recommendedby your friend [user name]”, where [user name] is replaced by data foundthrough the from relationship.

Note that the function of the resume last pick 290 and the recent pick292 will only select those records in the recent table 480 having a nullvalue in the from UID column.

In order to support the browse pick 296, it is necessary to organize allthe holdings represented in the episode table 430 in a coherent way.Once such way is represented in this preferred embodiment, but theskilled practitioner will recognize many others.

The series table 450, contains information that is common to one or moreshows represented in episode table 430. Each series is noted in a recordof the series table 450 is given a unique SID value.

Typical columns include series name, category, and description. Anexample, representing a well known series from Paramount Studios mightbe represented as {“Star Trek: the Next Generation”, “science-fiction”,“adventures of a starship crew in the 23rd century.”}.

It is entirely reasonable to include more data, for example allowing thecategory field to contain multiple values, e.g. {“science-fiction”,“adventure”}. Also, additional columns could be added, e.g. year (notshown). Further, categories can be made hierarchical, to make navigationon small screens more manageable by having shorter deep menus, insteadof long shallow ones, e.g. “fiction/science-fiction/future/space”. Byallowing multiple values, and hierarchical arrangements, there may bemultiple paths to finding a given episode, which may better representthe ways different participant might attempt to browse for shows.

Such predefined hierarchies are familiar to users of www.eBay.com, theonline auction web site by eBay, Inc. of San Jose, Calif., which listsauctions under predefined categories. Another useful aid in navigatingsuch hierarchical menus is to have a number after each non-terminalentry in the hierarchy indicating how many series may be found underthat entry. An example of hierarchies presented in this manner (thoughnot specifically related to series or shows) is the “Yahoo! Directory”at www.yahoo.com by Yahoo! Inc. of Sunnyvale, Calif. Both the eBay andYahoo! Hierarchies are pre-established by the staff maintaining thoseweb sites.

The access required column of the series table 450 is a mechanism tolimit access to individual series. A participant is permitted to accessa series if an access type listed in the user table 410 is at leastsufficient to meet the restrictions set forth in the access requiredcolumn of the series table 450. Additional constrains on Access might beimposed.

For example, if the access required for a series representing an audiobook might be set to “AUDIOBOOK:1”, meaning this counts as one audiobook. For a participant to access this particular series, the associatedrecord in user table 410 would have to have an access type of“AUDIOBOOK:X”, where ‘X’ is one or more. In the preferred embodiment,accessing this audio book would decrement the participant's access typecolumn in the user table 410 to subsequently read “AUDIOBOOK:Y”, where‘Y’ is the value of X−1.

By way of example and not by limitation, other possible values aredescribed here. Some series may have an access required of “OPENACCESS,”to indicate that no special access type is required. Some participantsmay have an access type of “UNLIMITED_(—) CCESS” which would meet anyaccess required restrictions. Such an access type would be appropriateif the participant is operating under a cumulative time plan, describedabove. Some series might include in the access required the value“RATED_R,” which might impose a rule that no participant under the ageof 18 would be granted access. This would require that the participant'sage (not shown) be included in the user table 410.

After the series is accessed by a participant through the series table450, and a “cost” has been paid from the access type column, a record inthe recent table 480 is preferably be generated for having a positionvalue of zero for the first episode of the series. This will allow theparticipant subsequently access to the series that is both convenientand does not require a subsequent access check.

When a participant attempts to access a series through a series listgenerated through the browse pick 296 or the search pick 298, a check ismade to determine if there exist any records in the recent table 480related by interrupted play relationship 484 to an entry in episodetable 430 that fulfils the is episode of relationship 452 to theselected series. If the check finds that such a record exists in therecent table 480, then it is preferably used to initiate playback ofthat episode, without an access check. Alternatively, the participantcan be queried whether the first episode of the series is preferred overthe episode and location recorded in the recent table 480 entry, butstill the access check is not required.

The benefit of this arrangement is that once you've bought, for example,an audio book, you will have access to all of its chapters (episodes),and won't accidentally lose your place. Similarly, if you buy access toa particular radio station, you can have access to the entire broadcasthistory that is designated as a series.

Each show represented in the episode table 430 is associated with aseries by having the series' SID recorded in the series SID column ofthe episode table 430, thus creating the is episode Of relationship 452.

When a participant selects the browse pick menu item 296, subsequentselect show dialogs (not shown) list categories, preferablyhierarchically as mentioned above. Ultimately, series matching theselected categories are listed.

A similar listing of series will be the outcome of selecting the searchpick 298. The intermediate screen will be a search query dialog (notshown) wherein a whole or partial series name, category or descriptionmay be entered. Series meeting such criteria will be returned andlisted. Additionally, criteria may be compared against values in theepisode name, synopsis, and credits columns of the episode table 430.The Series SID column from records matched would be used to return oradd to the list of series presented. A search would preferably eliminateduplicate series entries.

It might be noted here, that in an alternative implementation, theseries SID column of the episode table 430 may be implemented as amulti-valued field. In so doing, the is episode of relationship 452becomes one-to-many, allowing an episode to be a member of multipleseries. Such an arrangement would be desirable to allow a show, such asa radio station's broadcast stream, to be packaged into multipleproducts. For example, an all-news radio station might subdivide itsbroadcast into multiple, overlapping series so as to offer severalpackaged products such as Headline News Archive (all the historic thetop-of-the-hour news segments), This Week In Sports (comprising thesports reports for the past seven days), Lakers (comprising the mostrecent game call for the station's local basketball team), TrafficReport (comprising any traffic reports issued in the last 30-minutes),KXYZ Now (which is simply access to the station's most recent few hoursof broadcast, up to and including the live signal). A participantaccessing the radio station's series Traffic Report will find apartially overlap with the series KXYZ Now, as they will have TrafficReport segments (episodes) in common.

When a listed series is selected, information such as the seriesdescription can be displayed. Alternatively, the performance data fromthe synopsis data table 490 associated with the first or earliestepisode of the series can be played (e.g. the episode having an entrywith the matching Series SID and lowest episode number or the lowestvalued air date/time)

When series is so displayed, a participant may choose to start playingthe first episode, or may elect to make the series a favorite (neitherchoice is illustrated in the figures). When a favorite has beendesignated, a new entry is created in the favorites table 460. The SIDof the series displayed and the UID of the participant are recorded touniquely identify the favorite. This establishes an is favoriterelationship 464 and has favorite relationship 462.

In an alternative embodiment, when created, the value from of the accesstype column of the user table 410 used to overcome the access requiredvalue of the series table 450, is identified in the access type columnof new entry in the favorites table 460. For example, if the accessrequired is “AUDIOBOOK:1” and the participant's access type in the usertable 410 is presently “AUDIOBOOK:3”, then the access type column in thenew record in the favorites table 460 would be “AUDIOBOOK:1”. Theoriginal value in the user table 410 would be reduced to “AUDIOBOOK:2”.Note that this configuration is not necessary if a record is created aspreviously described in the recent table 480 upon accessing a series forthe first time.

When a participant selects the favorites pick 294, a subsequent selectfavorite show dialog (not shown) offers a list of series which have theis favorite relationship 464 with a UID matching the participant. When aseries is selected from the offered list, a check is made (as previouslydescribed) to determine if there are any pre-existing records in recenttable 480 having an interrupted play relationship 484 with an episodehaving the is episode of relationship 452 with the selected series. Ifso, the participant is preferably given the choice of resuming thatepisode, or starting at the beginning of the series.

The implementation described above of the in show selection menu 280allows for no series or episode to be accessed without first accessingthem through the browse pick 296, or the search pick 298. Only after aseries has been accessed by these methods will it appear under thefavorites pick 294 and the recent pick 292, or be accessible through theresume last pick 290.

An exception to this will be episodes sent by one participant toanother. These will appear under the other participant's recommendationspick (not shown), but appropriate to the show selection menu 280).

It is a matter of policy how recommendation records in the recent table480 are managed with regard to the limitations expressed in the accessrequired field of the series table 450. It can be the policy of thesystem that any recommendation is available to the receivingparticipant. This would promote word-of-mouth advertising, byeffectively sending samples of products from one user to another.However, such a policy, unconstrained, may be subject to abuse.

It can be the policy that a participant is limited in the number ofrecommendations that he makes. The access type column of a participant'srecord in the user table 410 might include a value of“RECOMMENDATIONS:20” which would be tested and decremented with eachrecommendation sent.

It could be the policy that the “RECOMMENDATIONS” element of the accesstype is only decremented when the participant to whom the recommendationis sent would have otherwise been required to expend some of the creditsof his own access type record. In other words, a recommendation made tosomeone having an access type of “UNLIMITED” would not result in adecrementing of the sender's access type value.

It can be the policy that a receiving participant is required to pay theaccess cost from his own access type field in the user table 410. Thisis analogous to someone suggesting that you go see a movie: therecommendation does not provide you with a ticket.

It can be the policy that a sending participant is permitted to conveyhis access to the receiving participant. This case would be analogous tothe sending participant taking a book that he has read and giving it tothe receiving participant, perhaps with the understanding that it willbe returned later. Under such a policy, the records associated withrecommended episode and the associated series in the recent table 480and the favorites table 450 would be transferred from having the UID ofthe sending participant to having the UID of the receiving participant.

The policy and its implementation can be arbitrarily complex to addressany appropriate business policy. The key in selecting the policy to notallow recommendations to unlock the valuable assets of the programdatabase in an unbounded manner. The reason for this is that if freeaccess is possible, the method will be discovered and exploited, thusburdening the system in an unlimited and unremunerated way.

Some policies, such as any participant under the age of 18 cannot haveaccess to a series having an access required value of RATED_R, may beimposed regardless of the sender's access type. In such a case, wherethe receiving participant will be unable to access the recommendedepisode, the sender should be immediately notified that therecommendation fails, and recommendation record is not entered in therecent table 480.

It may be desirable, in an alternate implementation, to accessrestrictions at the episode level. To do this, an access required fieldcould be added to the episode table 430, replacing or in addition to theone in series table 450.

An additional observation may be made concerning the situation where arecommendation is being received and yet the receiving participantalready has a record in recent table 480 for the episode beingrecommended.

In this exemplary embodiment, the recommendation preferably takes theform of a bookmark with the note that the recommendation was madecontained in the comment column of bookmark table. The bookmark isattached to the existing record in the recent table 480.

A slightly more complex but additionally functional implementation wouldinclude the from UID column of the recent table 480 in the compositeforeign key for the table. Preferably, the from UID column would bereplicated in the bookmark table so that each participant recommendingand episode to a receiving participant can make his own bookmarks. In sodoing, a list of recommended series (not shown) generated in response tothe recommended pick can display flags to indicate series of which thereceiving participant is already apprised.

This particular implementation of the participant/holdings database 50and the media database 80 is merely exemplary and that may modificationsto it can be made to add support for related features, or to implementthem differently.

One particular example of this is a class of show data that (at least inone implementation) would require modifying the columns of the episodetable 430 to accommodate. The class of show data is thechoose-your-own-adventure branching story game. A series would representa single story, and as with any series, it begins with the firstepisode, stored normally in the episode table 430 and the program datatable 440. When the first episode (and subsequent ones) is played, thestory unfolds and the episode ends with a choice being presented to theparticipant: “Do you turn left or right?”, “Do you trust the guy?”, “Howmuch do you offer: 10, 100, 1000?”. When the episode ends, the choicemust be made by the participant and that will determine what follows.The addition to the episode table 430 (or a table appropriately related)is the list the episodes that comprise the various branches available ateach. Column names such as choice 1 EID, choice 2 EID, choice 3 EID,etc. might be appropriate. It would be further preferable that the UI ofthe show in-progress dialog 300 be adapted to facilitate the selection.In addition to the controls 320, the choices might be illustrated on thedisplay 120. Alternatively, the numeric keypad 270 might be used fornumbered choices. Ideally, additional columns are provided in theextension to the episode table 430 that contain values used to label thechoices. Names like choice label 1, choice label 2, etc. seem likely.With those, a menu list of choices could be displayed in the adaptedshow in-progress dialog 300. Once a selection is made, the indicatedepisode is played. The save button on the menu 330 still works, and thebookmark table could be adapted to form a save-game function.

The advertisement table is used if the system provides any class ofaccess type in the user table 410 that is supported by advertising. Analternative way of viewing classes of access type, is that any accesstype other than premium services explicitly free of advertising, aresupported by advertising.

In the advertisement table, each record represents an individual ad, andis uniquely identified by the AID value.

Advertisements in a system of the present invention come in the sameform as do the shows, and that is as an episode. Thus, the presentationelement of an ad is identified by an ad EID column, and creates an admedia relationship.

Each ad is preferably designated with a demographic requirement value.Such is valuable, for instance, so that ad for cars are directed towardadults, and more so that ads for station wagons may be directed towardparents.

In determining an ad to be run for a participant, the demographicrequirement from the advertisement table is compared to demographic datafrom the user table 410. If a suitable match is found, the ad is run.

Each ad may optionally have a location requirement. Regional grocerystores will only be interested in advertising within their region, andpreferably only near where stores are located (most folks won't drive along way for groceries—they'll shop local). However, major detergentbrands may be distributed nationwide. A Mom & Pop restaurant may only betrying to draw customers within a 10-mile radius.

An ad location requirement will only be satisfied by a participanthaving location data that meets the location requirement.

Note that a simple implementation of location could be an ad limited toparticipants whose residence address has a zip code contained in a listexpressed in the location requirement of the advertisement table.

Preferably, a location requirement is expressed as a combination of alatitude/longitude pair and a range. Thus describing a circular areawherein delivery of the ad is appropriate. In an alternative embodiment,list of such circular areas could be provided for each ad.

In the preferred configuration, a participant's location data in theuser table 410 is expressed as a latitude/longitude pair, possibly witha value representing uncertainty in the position.

If the location data of a participant falls within (or using theuncertainty data, may fall within) the area defined by the locationrequirement for an ad, then playing the ad is appropriate.

From all ads having the demographic requirement and location requirementmet by a participant's demographic data and location data respectively,a decision is made automatically to determine which one will next playfor the participant.

The decision of which qualified ad to play can be made by randomselection, by function of episode number, by function of time-of-day, orby a utility function, or a combination of the above.

Each ad is given a utility value, recorded in the value data column ofthe advertisement table. The utility value might be how much money theoperator of the system is paid for playing an ad to a qualifiedparticipant. The operator of the system will want to play high value adsmore frequently than low value ads. The utility value may represent apriority that the advertiser has selected: for an individual qualifiedfor two different car ads by the same advertiser, which of the twoshould be played? The one with the highest priority.

When playback of an episode is requested, the determination of which adto play can be made and recorded in the recent table 480 for thenon-advertisement episode in the last ad AID column. This establishes asponsored by relationship (not shown). By doing this at the beginning ofan episode, if the episode was stopped or interrupted, the appropriatead sponsorship is preserved. Thus, a log of advertisements assigned toepisodes (not shown) is a reasonable estimate of advertisements thathave been played, and one method suitable for determining payments duefrom an advertiser.

An ad episode may only have performance data stored in the program datatable 440, which would be the main content of the ad. However, an adepisode might also have a performance data entry in the synopsis datatable 490. An ad synopsis might be a brief presentation of the form“Brought to you by the makers of Crest toothpaste.”

In the course of playback for a regular show episode, the advertisementindicated through a sponsored by relationship (not shown) is traced tofind the episode indicated by an ad media relationship (not shown). Fromthere, a has summary relationship 492 identifies the short blurb, andthe has performance relationship 442 identifies the primary ad.

Alternative embodiments might include one or more ad position values(not shown) marking appropriate positions within a show episode forhalting playback and inserting an ad. The halted playback would be as ifthe participant had used the save button, but rather than closing theshow in-progress dialog 300, the ad is played. When the ad concludes,the playback of the show resumes as if the resume last pick 290 wereselected.

In another alternative embodiment, an ad episode referenced by the admedia relationship might have a non-null next EID value. This wouldallow a progression of ads to be configured and played in sequence overthe course of the show episode (e.g. an Energizer battery ad showing thepink battery-operated rabbit beating its drum, followed later on by thereturn of the rabbit with the voiceover “Still Going . . .”) After thefirst ad episode is played, the next EID value from the episode table430 is copied to a next ad EID value (not shown) in the halted showepisode's associated record in the recent table 450.

The benefit of such a configuration is to permit the most valued ad tobe provided to an appropriate audience as a “commercial break”: afamiliar, integrated way of combining advertisements with thepresentation of a show.

FIG. 5 shows an abstraction of the pipeline filled with audio dataproceeding from the data as it is removed from the media database 80 tothe point it is presented to the participant through the audio output180. Between these two endpoints lies a buffer 510, which is comprisedof many segments.

Note that while, in the limit, the “many segments” comprising buffer 510might be individual samples, or the stream of instantaneous values of ananalog signal—for the purposes of this discussion, it is useful to thinkof somewhat larger chunks, such as the size of the data payload in a UDPor TCP/IP datagram, or the size of sector on the hard drives comprisingthe hardware of media database 80.

Further, while this discussion is directed to the context of audio data,the actual performance data found as values of the program data table400 and the synopsis data table 490 may be multimedia data, and includeimages, animations, video, or other elements (e.g. programs, scripts,annotations, triggers, hypertext markup language (HTML) documents, etc.)In addition, audio data may be music or voice rendered by a synthesisalgorithm, located either at the head-end 18, or on the station 10. Forinstance, performance data may be composed of text, perhaps withinflection cues, which when accessed by the media server 70 is firstprocessed by a voice synthesizer (not shown) to provide the audio signaltransmitted to the station 10. Alternatively, the text might betransmitted to the station 10 and rendered by a voice synthesizer there.

The buffer 510, while an abstraction, will be embodied in physicalportions of various alternative implementations. In order to play anepisode's performance data found in the program data table 440, the datamust be copied non-destructively from the storage media comprising thehardware implementation of the media database 80 into the buffer 510.This copying occurs at a now being accessed pointer 522, in the buffer510. Beyond it, lies an empty buffer space region 524, and the upperlimit on the size of the buffer defined by a buffer maximum pointer 526.

Somewhere ahead of the now being accessed pointer 522, is a mostrecently received pointer 518, which marks the point where the abstractbuffer's physical implementation is definitively divided between thatportion which exists on the station 10 (the part ahead of and includingthe most recently received pointer) and that portion which exists at thehead-end 18.

Any part of the episode from the oldest retained pointer 514 to the mostrecently received pointer 518, is available for playback, even if theconnection of the station 10 to the head-end 18 through thecommunication channel 150 is interrupted. Generally, the now playingpointer 516 will lie in the range from the oldest retained pointer 514and the most recently received pointer 518, inclusive.

Rewind, jump, and fast-forward commands from the control group 320 andothers inform the media server 70 of the head-end 18 of the command andpresent buffer status at the station 10. The media server 70 can thenundertake to provide the station 10 with the appropriate media data fromthe media database 80 via the communication channel 150.

In one embodiment where the size of storage available to the portion ofthe buffer at the station 10 is very large, the entire episode can betransferred and stored between the oldest returned pointer 514 to themost recently received pointer 518. The controls 320 strictly affect themedia player elements within the station 10. In such a case, thetransfer of the episode data across the communication channel 150 may befast and performed on demand. Alternatively, the transfer can beanticipated (algorithmically by virtue of the favorite seriesselections, recommendations sent by other participants, or next episodesthat as they become newly available). In such cases, it may not matterif the transfer rate across the communication channel 150 is fast orslow, as long as their is enough time to transmit the episode data thatis anticipated as being needed sufficiently in advance of the actualrequest.

Anticipation of demand is particularly useful for shows such as a radiostation's traffic reports. At any given moment, a traffic report may beselected from the favorites list by a participant. It would beespecially desirable for current traffic reports to be available, evenif at that moment, access to the communication channel 150 isinterrupted, in the case of a cellular telephone, perhaps because theparticipant is located within a subterranean parking garage but istrying to determine which exit to plan for based on local trafficconditions. In such a case, traffic reports that were available fiveminutes ago from the lobby of the office building would be perfectlyadequate for the purpose.

Similarly, the next chapter (or several) of an audio book would beuseful to anticipate and pre-load to the portion of the buffer 510located on the station 10. This is especially true if one will soonboard an airplane and discontinue cellular telephone service for thenext several hours.

If starting an episode over at the beginning is a relatively commonoccurrence, a performance optimization that can be made is to retain thefirst portion of an episode's performance data in a beginning buffer512. Thus, when the command is given to jump to the beginning of anepisode, the command can be obeyed immediately, and the later (no longerretained in the buffer 510) portions of the performance data can bebackfilled from the head-end 18 through the communication channel 150,preferably before they are needed for playing, as previously discussed.

In an embodiment that is less data oriented and more real-time streamoriented, such as a traditional telephone connection, the amount ofbuffering that occurs at the station 10 is essentially nil. The threepointers: the oldest retained pointer 514, the now playing pointer 516,and the most recently received pointer 518 collapse and refer to thesame datum: the real-time, right-now signal being transmitted by themedia server 70. In this case, the media player is wholly located at thehead-end 18, and the controls of group 320 exclusively affect the mediaserver 70.

A real-time stream does not, however, strictly limit the implementationto an all head-end based media player. For instance, whenever thestation 10 is not being used to playback a show as it arrives from thehead-end 18, it would be possible for an anticipating algorithm (forexample, the traffic report capture previously discussed), to bedownloading such program data.

Even when playback of a show is in progress from performance dataalready transferred to the participant station, additional performancedata for another episode can be transferring from the head-end. Sincethe participant station will probably only be used part-time, amount oftime available for downloading performance data will generally greatlyexceed the amount of time available for playback.

For an example of an audio book of significant length, the pre-load ofchapters (episodes) of the book is trivially predicted and is probablyconcluded well in advance, such as before getting on the airplane.Further, the most recent performance data loaded to the participantstation is probably comprising of ads suitable to the participant whilein proximity to the airport—for instance commercial parking garages,rental car companies, insurance companies, etc. Once aboard theairplane, the communication channel 150 is no longer available, and theads available, while all appropriate to the participant, may no longerbe appropriate to the location (which changes rapidly on a cross-countryflight). Upon landing, the communication channel 150 is re-established,and a generous portion of the book has been played and is likely nolonger needed. More importantly, most ads having a location requirementother than nationwide, are now inappropriate. Except for specificrequests (e.g.: get the next chapter of that book!), advertising mighttake up the initial uploads from the head-end 18.

In an alternative embodiment, a participant's favorites (such as atraffic report or weather), may have a location requirement (not shown)in the series table 450. Shows listed in the episode table 430 wouldhave location data (not shown) describing the episode's origin, whenapplicable. For instance, a traffic report in Los Angeles would havelocation data indicating a point in the Los Angeles area, whereas aMiami traffic report would be located in Miami. The location requirementof the series table 450 would constrain selection of episodes to includeonly those having location data (not shown) within a range specified inthe series' location requirement (not shown) from the participant'scurrent location data. This would be a simple way to gather the trafficreports or other local data (e.g. weather) appropriate to the area theparticipant is near.

While the preferred embodiment is discussed in the context of presentday cellular telephones, computer workstations, traditional telephones,and current communication channels, it is contemplated that other modesof data display and input, voice interaction, and communication willbecome suitable as they are made available.

The particular implementations described, and the discussions regardingdetails, and the specifics of the figures included herein, are purelyexemplary; these implementations and the examples of them, may bemodified, rearranged and/or enhanced without departing from theprinciples of the present invention. In particular, the variety ofexamples for access criteria and rules of order just touch the surfaceof the capabilities which this invention makes possible.

The particular features of the user interface and the capabilities ofthe overall conference calling system, will depend on the architectureused to implement a system of the present invention, the operatingsystem of the stations 10, 12 selected, the communication channel 150selected, and the software code written both for the stations 10, 12 andthe conference call server. It is not necessary to describe the detailsof such programming to permit a person of ordinary skill in the art toimplement the application, user interface and services suitable forimplementing a system within the scope of the present invention. Thedetails of the software design and programming necessary to implementthe principles of the present invention are readily understood from thedescription herein.

Various additional modifications of the described aspects of theinvention specifically illustrated and described herein will be apparentto those skilled in the art, particularly in light of the teachings ofthis invention. Further, it will be apparent that the functionality ofthis invention can be incorporated into and function from within thecontext of other products, such as computer games, consumer electronics,or office productivity software. It is intended that the invention coverall modifications and embodiments which fall within the spirit and scopeof the invention. Thus, while preferred embodiments of the presentinvention have been disclosed, it will be appreciated that it is notlimited thereto but may be otherwise embodied within the scope of thefollowing claims.

1. A computer-implemented method comprising: a) accepting, by a computersystem including at least one computer on a network, geolocationinformation associated with a request; b) determining, with the computersystem, whether an ad has geolocation-specific price informationcorresponding to the geolocation information accepted; c) responsive toa determination, with the computer system, that the ad hasgeolocation-specific price information corresponding to the geolocationinformation accepted, determining, with the computer system, a score ofthe ad using the geolocation-specific price information of the adcorresponding to the geolocation information accepted, otherwise,responsive to a determination, with the computer system, that the addoes not have geolocation-specific price information corresponding tothe geolocation information accepted, determining, with the computersystem, the score of the ad using general price information of the ad;and d) controlling the serving the ad, for rendering on a client device,using the determined score.
 2. The computer-implemented method of claim1 wherein the geolocation-specific price information corresponds to acircular area having a radius about a specified geographic referencepoint.
 3. The computer-implemented method of claim 1 wherein thegeolocation-specific price information corresponds to an area defined byat least three geographic reference points.
 4. The computer-implementedmethod of claim 3 wherein the area defined by at least three geographicreference points is a polygon.
 5. The computer-implemented method ofclaim 1, wherein the geolocation information associated with the requestand the geolocation-specific price information each include at least oneof (a) at least one region, (b) at least one state, (c) at least onemetro area, (d) at least one city, (e) at least one town, (f) at leastone postal zip code, and (g) at least one telephone area code.
 6. Thecomputer-implemented method of claim 1, wherein the geolocationinformation associated with the request and the geolocation-specificprice information each include at least one of (a) at least one region,(b) at least one metro area, (c) at least one city, and (d) at least onepostal zip code.
 7. The computer-implemented method of claim 1 whereincontrolling the serving includes i) determining whether the ad hasgeolocation-specific ad creative information corresponding to thegeolocation information accepted, and ii) responsive to a determinationthat the ad has geolocation-specific creative information correspondingto the geolocation information accepted, serving the ad with thegeolocation-specific creative information.
 8. The computer-implementedmethod of claim 1 wherein controlling the serving includes i)determining whether the ad has geolocation-specific landing pageinformation corresponding to the geolocation information accepted, andii) responsive to a determination that the ad has geolocation-specificlanding page information corresponding to the geolocation informationaccepted, serving the ad with a link to the geolocation-specific landingpage.
 9. A computer-implemented method comprising: a) accepting, by acomputer system including at least one computer on a network,geolocation information associated with a request; b) determining, withthe computer system, whether an ad has geolocation-specific performanceinformation corresponding to the geolocation information accepted; c)responsive to a determination, with the computer system, that the ad hasgeolocation-specific performance information corresponding to thegeolocation information accepted, determining, with the computer system,a score of the ad using the geolocation-specific performance informationof the ad corresponding to the geolocation information accepted,otherwise, responsive to a determination, with the computer system, thatthe ad does not have geolocation-specific performance informationcorresponding to the geolocation information accepted, determining, withthe computer system, the score of the ad using general performanceinformation of the ad; and d) controlling the serving the ad, forrendering on a client device, using the determined score.
 10. Thecomputer-implemented method of claim 9 wherein the geolocation-specificperformance information corresponds to a circular area having a radiusabout a specified geographic reference point.
 11. Thecomputer-implemented method of claim 9 wherein the geolocation-specificperformance information corresponds to an area defined by at least threegeographic reference points.
 12. The computer-implemented method ofclaim 11 wherein the area defined by at least three geographic referencepoints is a polygon.
 13. The computer-implemented method of claim 9,wherein the geolocation information associated with the request and thegeolocation-specific performance information each include at least oneof (a) at least one region, (b) at least one state, (c) at least onemetro area, (d) at least one city, (e) at least one town, (f) at leastone postal zip code, and (g) at least one telephone area code.
 14. Thecomputer-implemented method of claim 9, wherein the geolocationinformation associated with the request and the geolocation-specificperformance information each include at least one of (a) at least oneregion, (b) at least one metro area, (c) at least one city, and (d) atleast one postal zip code.
 15. The computer-implemented method of claim9 wherein controlling the serving includes i) determining whether the adhas geolocation-specific ad creative information corresponding to thegeolocation information accepted, and ii) responsive to a determinationthat the ad has geolocation-specific creative information correspondingto the geolocation information accepted, serving the ad with thegeolocation-specific creative information.
 16. The computer-implementedmethod of claim 9 wherein controlling the serving includes i)determining whether the ad has geolocation-specific landing pageinformation corresponding to the geolocation information accepted, andii) responsive to a determination that the ad has geolocation-specificlanding page information corresponding to the geolocation informationaccepted, serving the ad with a link to the geolocation-specific landingpage.
 17. Apparatus comprising: a) at least one processor; and b) atleast one storage device storing processor-executable instructionswhich, when executed by the at least one processor, perform a methodof: 1) accepting geolocation information associated with a request, 2)determining whether an ad has at least one of (A) geolocation-specificprice information corresponding to the geolocation information accepted,and (B) geolocation-specific performance information corresponding tothe geolocation information accepted, 3) responsive to a determinationthat the ad has at least one of (A) geolocation-specific priceinformation corresponding to the geolocation information accepted, and(B) geolocation-specific performance information corresponding to thegeolocation information accepted, determining a score of the ad using atleast one of (A) the geolocation-specific price information of the adcorresponding to the geolocation information accepted, and (B) thegeolocation-specific performance information of the ad corresponding tothe geolocation information accepted, otherwise, responsive to adetermination that the ad does not have at least one of (A)geolocation-specific price information corresponding to the geolocationinformation accepted, and (B) geolocation-specific performanceinformation corresponding to the geolocation information accepted,determining the score of the ad using at least one of (A) general priceinformation of the ad, and (B) general performance information of thead, and 4) controlling the serving the ad, for rendering on a clientdevice, using the determined score.